const { MeiliSearch } = require('meilisearch');

// 初始化客户端（v1.x 版本写法一致）
const searchClient = new MeiliSearch({
  host: 'http://127.0.0.1:7700',
  apiKey: 'v7vWroBzMAihqTAEW-63JLvsh8JxzmzN0f6Pdjzj2x8'
});

// 课程索引（确保 index 方法调用正确）
const coursesIndex = searchClient.index('courses');
(async () => {
  try {
    // 1. 设置可搜索字段
    await coursesIndex.updateSearchableAttributes(['name', 'content']);
    // 2. 修复拼写错误：updateSorttableAttributes → updateSortableAttributes
    await coursesIndex.updateSortableAttributes(['updateAt', 'likesCount']);
    // 3. 更新排序规则
    await coursesIndex.updateRankingRules([
      'sort',
      'words',
      'typo',
      'proximity',
      'attribute',
      'exactness'
    ]);
  } catch (error) {
    console.error('课程索引配置失败：', error);
  }
})();

// 章节索引
const chaptersIndex = searchClient.index('chapters');
(async () => {
  try {
    await chaptersIndex.updateSearchableAttributes(['title', 'content']);
    // 修复拼写错误
    await chaptersIndex.updateSortableAttributes(['updateAt']);
    await chaptersIndex.updateRankingRules([
      'sort',
      'words',
      'typo',
      'proximity',
      'attribute',
      'exactness'
    ]);
  } catch (error) {
    console.error('章节索引配置失败：', error);
  }
})();

module.exports = {
  coursesIndex,
  chaptersIndex
};